package src.io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * 对象流是一对高级流，在流链接中发挥的作用是进行对象序列化与反序列化
 *
 * 对象序列化:将一个对象按照其结构转化为一组字节的过程。反之叫做对象的反序列化。
 *
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        //将一个Person对象写入文件person.obj中
        String name = "苍老师";
        String gender = "女";
        int age = 18;
        String[] otherInfo = {"来自日本","演员","台词少","广大男性同胞的启蒙老师"};
        Person p = new Person(name,gender,age,otherInfo);

        FileOutputStream fos = new FileOutputStream("person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        /*
            执行序列化动作时若出现:java.io.NotSerializableException
            则说明序列化的对象没有实现序列化接口
         */
        oos.writeObject(p);
        System.out.println("写出完毕!");
        oos.close();
    }
}






